<?php

/**
 * @author PeoneEr
 * @package aion personal cabinet v1.0
 * @copyright Aion Factory Inc. 2010-2011
 * @license GNU v3
 * @link Ai-Factory.ru && http://code.google.com/p/aionprivateofficev2
 */
require_once "core/application/models/mstigma/mstigma.php";
require_once "core/application/controllers/cmoney.php";
require_once "core/application/classes/errorClass.php";
require_once "core/application/classes/selectValueClass.php";
require_once "core/application/classes/isOnlineClass.php";

class stigma_Controller extends Stigma_Model {

    /**
     *
     * @var static $_instance
     * @var object $_lang
     * @var int $_balance
     * @var int $_newBalance
     */
    private static $_instance = NULL;
    public $_lang             = NULL;
    private $_balance            = 0;
    private $_newBalance         = 0;

    public static function getInstance() {
        if (is_null(self::$_instance)) {
            $class = __CLASS__;
            self::$_instance = new $class();
        }
        return self::$_instance;
    }

    public function open_stigma() {
        $this->_lang = $this->getLanguage();
        $this->_balance = Cmoney::getInstance()->showMoney();
        if ($this->_balance < valueSelect::selectValue(8))  //Если кол-во предметов меньше того, что необходимо то выходим.
            $this->echoError("У Вас не достаточно средств для активации 5ой ячейки стигмы персонажу " . $_POST['nick'] . "<br />
                Требуется " . valueSelect::selectValue(8) . ", а у Вас " . $this->_balance . "");
        if (isOnline::getInstance()->online($_POST['nick']))
            $this->echoError("Персонаж <b>" . $_POST['nick'] . "</b> находится в игре, активация стигмы не возможна. Пожалуйста, завершите игру этим персонажем");
        if ($this->isOpenedSlots($_POST['nick']))
            $this->echoError("У персонажа <b>" . $_POST['nick'] . "</b> не открыто 4 ячейки улучшенной стигмы или уже открыто 5, активация невозможна. Пожалуйста, проверьте всю информацию и повторите попытку");
        $this->_newBalance = $this->_balance - valueSelect::selectValue(8);
        try {
            Cmoney::getInstance()->updateMoney($this->_newBalance);
            try {
                $this->updateSlotStigma($_POST['nick']);
                $this->echoSuccess(
                        valueSelect::selectValue(8) . " было снято с Вашего счета. У Вас осталось 
                            " . $this->_newBalance . " на счету
                    <br />
                    Ячейка стигмы открыта. Не заходите в игру до тех пор, пока сервер не будет перезагружен");
                unset($this->_lang, $this->_balance, $this->_newBalance);
            } catch (Exception $e) {
                echo $e->getMessage();
                error::getInstance($this->_lang->language['defaultError']);
                unset($this->_lang, $this->_balance, $this->_newBalance);
            }
        } catch (Exception $e) {
            echo $e->getMessage();
            error::getInstance($this->_lang->language['defaultError']);
            unset($this->_lang, $this->_balance, $this->_newBalance);
        }
    }
    /**
     * список чаров
     */
    public function chars_lists() {
        $this->_lang = $this->getLanguage();
        $chars = $this->selectChars();
        if (is_null($chars) || empty($chars) || !isset($chars)) {
            error::getInstance($this->_lang->language['defaultError']);
        }
        foreach ($chars as $key => $val) {
            echo "<option value='" . $val . "'>" . $val . "</option>";
        }
        unset($this->_lang, $chars);
    }

    public function numRowsOfChars() {
        return $this->numRows();
    }

}

?>